/*******************************************************************
 *                                                                 *
 *  mcotargt.h                                                     *
 *                                                                 *
 *  This file is a part of the eXtremeDB source code               *
 *  Copyright (c) 2001-2012 McObject LLC                           * 
 *  All Rights Reserved                                            *
 *                                                                 *
 *  eXtremeDB runtime target platform definitions                  *
 *                                                                 *
 ***************************************************************** */
/*
 * ++
 * 
 * PROJECT:   eXtremeDB
 *
 * SUBSYSTEM: eXtremeDB target platform definitions  
 *
 * MODULE:    mcotargt.h
 *
 * ABSTRACT:  common definitions for schema compiler and runtime
 *
 *
 * HISTORY:
 *            1. 2000-2002   TP versions 1-2 created
 * --
 */

#ifndef MCO_TARGET__H__
    #define MCO_TARGET__H__

    #define MCO_TARGET_FLOAT_SUPPORTED   /* base float type supported in C runtime */

    #define MCO_TARGET_DOUBLE_SUPPORTED  /* base double type supported in C runtime */

    /* #define MCO_STRICT_ALIGNMENT */        /* align datatype on size boundary */

    #if defined(MCO_PLATFORM_X64) && !defined(MCO_LARGE_DATABASE_SUPPORT)
    #define MCO_LARGE_DATABASE_SUPPORT
    #define MCO_LARGE_DATABASE_SUPPORT_X64_AUTOENABLED
    #endif

    #if !defined(MCO_PLATFORM_X64) && defined(MCO_CFG_USE_DIRECT_POINTERS) && defined(MCO_LARGE_DATABASE_SUPPORT)
    #error Large database is not supported for 32-bit direct pointer configuration
    #endif

    #ifdef __sun
    #define RESTRICTED_TEST_ENVIRONMENT 1
    #endif

    /* indexes support */
    #define MCO_CFG_HASH_SUPPORT
    #define MCO_CFG_KDTREE_SUPPORT
    #define MCO_CFG_RTREE_SUPPORT
    #define MCO_CFG_PATRICIA_SUPPORT

    /* pattern search support */
    #define MCO_CFG_PATTERN_SEARCH

    #if !defined(MCO_CONFIG_OVERRIDE_WCHAR) && !defined(__KERNEL__)
        /* #define MCO_CFG_WCHAR_SUPPORT  */
    #endif /* MCO_CONFIG_OVERRIDE_WCHAR */

    /*
     * choose to support custom string collations in indices
     */
    #define MCO_CFG_COLLATION_SUPPORT

    /* inlude keywords definitions, depends on compiler */
    /* default empty */
    #define MCO_INLINE_PREFIX
    #define MCO_INLINE_SUFFIX
    /* GCC */ 
    /*
    #define MCO_INLINE_PREFIX __inline__
    #define MCO_INLINE_SUFFIX __attribute__((always_inline))
    */
#endif
